/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import DB.Evolucion;
import java.util.List;
import javax.persistence.RollbackException;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
import javax.transaction.SystemException;

/**
 *
 * @author Jacqueline
 */
@WebService()
public class EvolucionWS {
     @WebMethod(operationName = "agregarEvolucion")
    public Long agregarEvolucion(@WebParam(name = "fichaClinica") Long fichaClinica,
            @WebParam(name = "sesion") int sesion,
            @WebParam(name = "fecha") String fecha,
            @WebParam(name = "comentario") String comentario,
            @WebParam(name = "activo") boolean activo) {

        DB.Evolucion evolucion= new DB.Evolucion();
        evolucion.setFichaClinica(fichaClinica);
        evolucion.setSesion(sesion);
        evolucion.setFecha(fecha);
        evolucion.setComentario(comentario);
        evolucion.setActivo(activo);

        ControladorDeObjetos.saveObject(evolucion);
        return evolucion.getId();
    }
    /**
     * Web service operation
     */

    /*hay que listar las evoluciones segun la ficha.. no todas las evoluciones almacenadas
     en la base de datos de la clinica*/
    @WebMethod(operationName = "listarEvoluciones")
    public List<Evolucion> listarEvoluciones() {
        return ControladorDeObjetos.getAllObjectByClassType(Evolucion.class);
    }


    @WebMethod(operationName = "eliminarEvolucion")
    public boolean eliminarEvolucion(@WebParam(name = "Id") Long Id) throws IllegalStateException, SystemException, RollbackException, HeuristicMixedException, HeuristicRollbackException {

       Evolucion evolucion = (Evolucion) ControladorDeObjetos.loadObjectByLongId(Id, Evolucion.class);
       ControladorDeObjetos.deleteObject(evolucion);
       return true;

    }

    @WebMethod(operationName = "cargarEvolucion")
    public Object cargarEvolucion(@WebParam(name = "Id") Long Id) throws RollbackException, IllegalStateException, SystemException, HeuristicMixedException, HeuristicRollbackException {
        return ControladorDeObjetos.loadObjectByLongId(Id, Evolucion.class);
    }

    @WebMethod(operationName = "modificarEvolucion")
    public boolean modificarEvolucion(@WebParam(name = "Id") Long Id,
            @WebParam(name = "fichaClinica") Long fichaClinica,
            @WebParam(name = "sesion") int sesion,
            @WebParam(name = "fecha") String fecha,
            @WebParam(name = "comentario") String comentario,
            @WebParam(name = "activo") boolean activo) throws IllegalStateException, SystemException, RollbackException, HeuristicMixedException, HeuristicRollbackException {

        Evolucion evolucion = (Evolucion) ControladorDeObjetos.loadObjectByLongId(Id, Evolucion.class);
        evolucion.setFichaClinica(fichaClinica);
        evolucion.setSesion(sesion);
        evolucion.setFecha(fecha);
        evolucion.setComentario(comentario);
        evolucion.setActivo(activo);

        return ControladorDeObjetos.updateObject(evolucion);
    }
    @WebMethod(operationName = "modificarEvo")
    public boolean modificarEvo(@WebParam(name = "FichaClinica")Evolucion evolucion) throws RollbackException, HeuristicMixedException, HeuristicRollbackException {
        return ControladorDeObjetos.updateObject(evolucion);
    }
    /**
     * Web service operation
     */
    @WebMethod(operationName = "agregarEvolucionPapelera")
    public boolean agregarEvolucionPapelera(@WebParam(name = "evolucion")
        Evolucion evolucion) {

        ControladorDeObjetos.saveObject(evolucion);
        return true;
    }

}
